package com.nodecollege.cloud.common.model.vo;

import com.nodecollege.cloud.common.constants.NCConstants;
import com.nodecollege.cloud.common.model.po.UpmsApiVisit;
import com.nodecollege.cloud.common.utils.NCStringUtils;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

/**
 * 接口访问VO
 *
 * @author LC
 * @date 2019/12/23 19:16
 */
@Data
public class ApiVisitQuery extends UpmsApiVisit {
    /**
     * 开始小时 00-23
     */
    private String startHH;
    /**
     * 结束小时 00-23
     */
    private String endHH;
    /**
     * 开始日期 yyyymmdd
     */
    private String startDate;
    /**
     * 结束日期 yyyymmdd
     */
    private String endDate;
    /**
     * 分页
     */
    private Integer pageNum = 1;
    /**
     * 大小
     */
    private Integer pageSize = 10;
    /**
     * 排序方式 0-升序（ASC），1-降序（DESC）
     */
    private String sortDirection;
    /**
     * 排序列表
     */
    private String sortKey;
    /**
     * 分组关键字
     */
    private String groupByKey;

    /**
     * 是否需要排序
     *
     * @return
     */
    public Boolean isSort() {
        if (sortDirection == null || sortKey == null || StringUtils.isBlank(sortKey)) {
            return false;
        }
        if (NCConstants.ASC.equalsIgnoreCase(sortDirection)
                || NCConstants.DESC.equalsIgnoreCase(sortDirection)) {
            return true;
        }
        return false;
    }

    public String getGroupByKey() {
        return NCStringUtils.camelToUnderline(groupByKey, 1);
    }

    public String getSortKey() {
        return NCStringUtils.camelToUnderline(sortKey, 1);
    }
}
